blktap: fix blktapctrl abort
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 22 Jan 2010 11:00:45 +0000 (11:00 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 22 Jan 2010 11:00:45 +0000 (11:00 +0000)
commit939629eb5b1f143b12eee9396d6a8c8b1e0f3226
tree7ab0ee0229e10f16bc8bcffe6d2e3ca468ce1ad8
parent7848a26a9729479720edfcee8c6bd816eb11ac41
blktap: fix blktapctrl abort

On rebooting a hvm, the blktapctrl daemon has died.

gdb shows the following call trace:
(gdb) where
#0  0x00000039d1830155 in raise () from /lib64/libc.so.6
#1  0x00000039d1831bf0 in abort () from /lib64/libc.so.6
#2  0x00000039d186a38b in __libc_message () from /lib64/libc.so.6
#3  0x00000039d1871634 in _int_free () from /lib64/libc.so.6
#4  0x00000039d1874c5c in free () from /lib64/libc.so.6
#5  0x0000003320a01bdd in ueblktap_probe (h=3D0x6073b0,=20
    w=<value optimized out>, bepath_im=<value optimized out>) at
    xenbus.c:270
#6  0x0000003320a020e0 in xs_fire_next_watch (h=3D0x6073b0) at
xs_api.c:355
#7  0x0000000000401785 in main (argc=3D<value optimized out>,
    argv=<value optimized out>) at blktapctrl.c:907

There is a case that "/local/domain/0/backend/tap/<dom_id>" exists but
"/local/domain/<dom_id>/vm" is not in the xenstore.

Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
tools/blktap/lib/xenbus.c